package com.dao;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.bean.AvaliacaoBean;

public class AvaliacaoDao {
	
	public static final String TABELA = "avaliacao";
	
	public static final String COLUNA_AVA_UNI_ID = "uni_id";
	public static final String COLUNA_AVA_DIS_ID = "dis_id";
	public static final String COLUNA_AVA_BIM_ID = "bim_id";
	public static final String COLUNA_AVA_ALU_ID = "alu_id";
	public static final String COLUNA_AVA_ID = "ava_id";
	public static final String COLUNA_AVA_NOTA1 = "ava_nota1";
	public static final String COLUNA_AVA_NOTA2 = "ava_nota2";
	public static final String COLUNA_AVA_NOTA3 = "ava_nota3";
	public static final String COLUNA_AVA_NOTA4 = "ava_nota4";
	public static final String COLUNA_AVA_NOTA5 = "ava_nota5";
	public static final String COLUNA_AVA_NOTA6 = "ava_nota6";
	public static final String COLUNA_AVA_NOTA7 = "ava_nota7";
	public static final String COLUNA_AVA_NOTA8 = "ava_nota8";
	public static final String COLUNA_AVA_NOTA9 = "ava_nota9";
	public static final String COLUNA_AVA_NOTA10 = "ava_nota10";
	
	
	public long insert(SQLiteDatabase escola, AvaliacaoBean avaliacaoBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_AVA_UNI_ID, avaliacaoBean.getUnidade().getId());
		valores.put(COLUNA_AVA_DIS_ID, avaliacaoBean.getDisciplina().getId());
		valores.put(COLUNA_AVA_BIM_ID, avaliacaoBean.getBimestre().getId());
		valores.put(COLUNA_AVA_ALU_ID, avaliacaoBean.getAluno().getId());
		valores.put(COLUNA_AVA_ID, avaliacaoBean.getId());
		valores.put(COLUNA_AVA_NOTA1, avaliacaoBean.getNota1());
		valores.put(COLUNA_AVA_NOTA2, avaliacaoBean.getNota2());
		valores.put(COLUNA_AVA_NOTA3, avaliacaoBean.getNota3());
		valores.put(COLUNA_AVA_NOTA4, avaliacaoBean.getNota4());
		valores.put(COLUNA_AVA_NOTA5, avaliacaoBean.getNota5());
		valores.put(COLUNA_AVA_NOTA6, avaliacaoBean.getNota6());
		valores.put(COLUNA_AVA_NOTA7, avaliacaoBean.getNota7());
		valores.put(COLUNA_AVA_NOTA8, avaliacaoBean.getNota8());
		valores.put(COLUNA_AVA_NOTA9, avaliacaoBean.getNota9());
		valores.put(COLUNA_AVA_NOTA10, avaliacaoBean.getNota10());
		

		return escola.insert(TABELA, null, valores);

	}
	
	public long update(SQLiteDatabase escola, AvaliacaoBean avaliacaoBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_AVA_UNI_ID, avaliacaoBean.getUnidade().getId());
		valores.put(COLUNA_AVA_DIS_ID, avaliacaoBean.getDisciplina().getId());
		valores.put(COLUNA_AVA_BIM_ID, avaliacaoBean.getBimestre().getId());
		valores.put(COLUNA_AVA_ALU_ID, avaliacaoBean.getAluno().getId());
		valores.put(COLUNA_AVA_ID, avaliacaoBean.getId());
		valores.put(COLUNA_AVA_NOTA1, avaliacaoBean.getNota1());
		valores.put(COLUNA_AVA_NOTA2, avaliacaoBean.getNota2());
		valores.put(COLUNA_AVA_NOTA3, avaliacaoBean.getNota3());
		valores.put(COLUNA_AVA_NOTA4, avaliacaoBean.getNota4());
		valores.put(COLUNA_AVA_NOTA5, avaliacaoBean.getNota5());
		valores.put(COLUNA_AVA_NOTA6, avaliacaoBean.getNota6());
		valores.put(COLUNA_AVA_NOTA7, avaliacaoBean.getNota7());
		valores.put(COLUNA_AVA_NOTA8, avaliacaoBean.getNota8());
		valores.put(COLUNA_AVA_NOTA9, avaliacaoBean.getNota9());
		valores.put(COLUNA_AVA_NOTA10, avaliacaoBean.getNota10());

		return escola.update(TABELA, valores, COLUNA_AVA_UNI_ID + " = " + avaliacaoBean.getUnidade().getId() + 
				" AND " + COLUNA_AVA_ID + " = " + avaliacaoBean.getId(), null);

	}
	
	public boolean delete(SQLiteDatabase escola, AvaliacaoBean avaliacaoBean){
		return escola.delete(TABELA, COLUNA_AVA_UNI_ID + " = " + avaliacaoBean.getUnidade().getId() + 
				" AND " + COLUNA_AVA_ID + "=" + avaliacaoBean.getId(), null) > 0;
	}
	
	public AvaliacaoBean buscaPorCodigo(SQLiteDatabase escola, long unidade, long rowId) throws ParseException {
		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_AVA_UNI_ID + "=" + unidade );
		sql.append("    AND "+ COLUNA_AVA_ID + "=" + rowId);

		AvaliacaoBean avaliacaoBean = new AvaliacaoBean();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		if(cursor.getCount() > 0){
			avaliacaoBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_UNI_ID)));
			avaliacaoBean.getDisciplina().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_DIS_ID)));
			avaliacaoBean.getAluno().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_ALU_ID)));
			avaliacaoBean.getBimestre().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_BIM_ID)));
			avaliacaoBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_ID)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA1)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA2)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA3)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA4)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA5)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA6)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA7)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA8)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA9)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA10)));

			cursor.close();
			return avaliacaoBean;

		} else {
			cursor.close();
			return null;
		}
	}
	
	public List<AvaliacaoBean> getAll(SQLiteDatabase escola, long unidadeId) throws ParseException{

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_AVA_UNI_ID + "=" + unidadeId );

		List<AvaliacaoBean> avaliacaoList = new ArrayList<AvaliacaoBean>();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		while(cursor.moveToNext()){

			AvaliacaoBean avaliacaoBean = new AvaliacaoBean();

			avaliacaoBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_UNI_ID)));
			avaliacaoBean.getDisciplina().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_DIS_ID)));
			avaliacaoBean.getAluno().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_ALU_ID)));
			avaliacaoBean.getBimestre().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_BIM_ID)));
			avaliacaoBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_AVA_ID)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA1)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA2)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA3)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA4)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA5)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA6)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA7)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA8)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA9)));
			avaliacaoBean.setNota1(cursor.getDouble(cursor.getColumnIndex(COLUNA_AVA_NOTA10)));

			avaliacaoList.add(avaliacaoBean);

		}

		cursor.close();
		return avaliacaoList;

	}

}
